// pages/proposal/my.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    startDate: '',
    endDate: '',
    sortOptions: ['按报送提交时间倒序排列', '按报送提交时间正序排列'],
    sortIndex: 0,
    typeOptions: [
      '全部',
      '医疗健康类',
      '教育科技类',
      '文化体育类',
      '城市建设类',
      '环境保护类',
      '社会治理类',
      '经济发展类',
      '其他类'
    ],
    typeIndex: 0,
    statusOptions: ['全部', '已完结', '处理中', '已驳回'],
    currentSort: '按提案提交时间倒序排列',
    currentType: '全部',
    currentStatus: '全部',
    currentPage: 1,
    totalPages: 4,
    pageSize: 10,
    opinions: [],
    pages: 4,
    pageNum: 1,
    myDTO: {},
    searchKeyword: '',
    enterKeyword: '',
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {

  },
  //搜索框文字的变化
  onInputChange(e) {
    this.setData({
      searchKeyword: e.detail.value
    })
  },
  // 开始日期变化处理
  onStartDateChange(e) {
    const startDate = e.detail.value;
    let {
      endDate
    } = this.data;

    // 如果结束日期已选择且早于新的开始日期，则将结束日期设置为开始日期
    if (endDate && endDate < startDate) {
      endDate = startDate;
    }
    this.setData({
      startDate,
      endDate
    });
    if (startDate !== null && endDate !== null) {
      this.loadProposals()
    }
  },

  // 结束日期变化处理
  onEndDateChange(e) {
    const endDate = e.detail.value;
    const {
      startDate
    } = this.data;

    // 如果选择的结束日期早于开始日期，提示用户并不更新
    if (startDate && endDate < startDate) {
      wx.showToast({
        title: '结束日期不能早于开始日期',
        icon: 'none',
        duration: 2000
      });
      return;
    }

    this.setData({
      endDate
    });
    if (startDate !== null && endDate !== null) {
      this.loadProposals()
    }
  },

  onSortChange(e) {
    this.setData({
      sortIndex: e.detail.value,
      pageNum: 1
    })
    this.loadProposals()
  },

  onTypeChange(e) {
    this.setData({
      typeIndex: e.detail.value,
      pageNum: 1
    })
    this.loadProposals()
  },

  // 分页相关方法
  onPrevPage() {
    if (this.data.pageNum > 1) {
      this.setData({
        pageNum: this.data.pageNum - 1
      })
      this.loadProposals()
    }
  },

  onNextPage() {
    if (this.data.pageNum < this.data.pages) {
      this.setData({
        pageNum: this.data.pageNum + 1
      })
      this.loadProposals()
    }
  },

  onPageInput(e) {
    const page = parseInt(e.detail.value);
    if (page >= 1 && page <= this.data.pages) {
      this.setData({
        toPage: page
      });
    }
  },


  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {
    // 初始化加载第一页数据
    this.loadProposals();
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {
    this.loadProposals()
    setTimeout(() => {
      wx.stopPullDownRefresh()
      wx.showToast({
        title: '刷新成功',
        icon: 'success',
        duration: 1000
      })
    }, 1000)
  },
  // 新增页面变化处理函数
  handlePageChange(e) {
    const { pageNum } = e.detail;
    this.setData({
      pageNum
    });
    this.loadProposals();
  },


  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  },

 //搜索框文字的变化
 onInputChange(e) {
  this.setData({
    searchKeyword: e.detail.value
  })
},
// 开始日期变化处理
onStartDateChange(e) {
const startDate = e.detail.value;
let { endDate } = this.data;

// 如果结束日期已选择且早于新的开始日期，则将结束日期设置为开始日期
if (endDate && endDate < startDate) {
  endDate = startDate;
}
this.setData({
  startDate,
  endDate
});
if(startDate!==null && endDate!==null) {
  this.loadProposals()
}
},

// 结束日期变化处理
onEndDateChange(e) {
const endDate = e.detail.value;
const { startDate } = this.data;

// 如果选择的结束日期早于开始日期，提示用户并不更新
if (startDate && endDate < startDate) {
  wx.showToast({
    title: '结束日期不能早于开始日期',
    icon: 'none',
    duration: 2000
  });
  return;
}

this.setData({
  endDate
});
if(startDate!==null && endDate!==null) {
  this.loadProposals()
}
},

onSortChange(e) {
  this.setData({
     sortIndex:e.detail.value,
     pageNum:1
  })
  this.loadProposals()
},

onTypeChange(e) {
  this.setData({
    typeIndex:e.detail.value,
    pageNum:1
  })
  this.loadProposals()
},

// 分页相关方法
onPrevPage() {
  if(this.data.pageNum > 1) {
    this.setData({
      pageNum:this.data.pageNum - 1
    })
    this.loadProposals()
  }
},

onNextPage() {
  if(this.data.pageNum < this.data.pages) {
    this.setData({
      pageNum:this.data.pageNum + 1
    })
    this.loadProposals()
  }
},

onPageInput(e) {
  const page = parseInt(e.detail.value);
  if (page >= 1 && page <= this.data.pages) {
    this.setData({
      toPage: page
    });
  }
},


  // 加载提案数据
  loadProposals() {
    const app = getApp()
    var dto = {
      orderDirection: this.data.sortIndex == 0?'desc':'asc',
      opinionType: this.data.typeOptions[this.data.typeIndex],
      pageNum: this.data.pageNum,
      caseReason: this.data.enterKeyword,
      startTime: this.data.startDate,
      endTime: this.data.endDate
    }
    app.civilApi.publicOpinions(dto).then(res => {
      const data = res.data;
      console.log(data)
      this.setData({
        opinions: data.data.list,
        pages: data.data.pages,
        pageNum: data.data.pageNum
      })
    })

  },
  //搜索框文字的变化
  onInputChange(e) {
    this.setData({
      searchKeyword: e.detail.value
    })
  },
  onConfirmSearch() {
    this.setData({
      pageNum:1,
      enterKeyword:this.data.searchKeyword
    })
    this.loadProposals()
  },
  // 提案详情
  goDetail(event) {
    const item = event.currentTarget.dataset.item
    wx.navigateTo({
      url: './detail?item=' + item,
    })
  }
})